/*定义全局axios拦截器*/
import axios from "axios";
import router from "./router";
import Element from "element-ui";

axios.defaults.baseURL = "http://localhost:8088"

/*设置全局超时时间  header*/
const request =axios.create({
    timeout: 5000,
    headers: {
        'Content-Type' : "application/json; charset=utf-8"
    }
})

/*进行拦截*/
request.interceptors.request.use(config=>{
     //请求头  代表身份的请求头
    config.headers['Authorization'] =localStorage.getItem('token')
    return config
})

/*返回的结果*/
request.interceptors.response.use(response=>{
    let res=response.data
    if (res.code === 200){
        return response
    }else {
        //异常的话 弹出异常信息
        Element.Message.error(!res.msg? "系统异常" : res.msg)
        //拒绝的原因 Promise.reject()方法返回一个带有拒绝原因的Promise对象。
        return Promise.reject(response.data.msg)
    }
    /* 200 正常 500 异常 401 权限不够 404 找不到*/
    },error => {
       if (error.response.data){
           error.message =error.response.data.msg
       }
       if (error.response.status === 401){
           router.push("/login")
       }
       /*duration 弹窗显示时间*/
    Element.Message.error(error.message,{duration: 3000})
    return Promise.reject(error)
    }
)
/*暴露出去*/
export default request
